

$(function (params) {
    

    var selectedNumber=[] // 已经选择号码
    var selectedNumberIndex = [] // 选择的号码的 索引
    var selectedNumberIds = [] // 选择的号码的id
    var currentLotteryType="" // 当前选择彩种类型
    var pay_money =0 // 投注的金额


    /**
     * 
     * 获取所有 后面要操作的 dom 节点
     * 
     */

    // 彩种类型的父节点，遍历彩种类型之后，添加到这个 dom 节点中
    var lottery_type_parent = $(".xuanma_wanfa .swiper-wrapper")

    // 彩种类型对应的号码，把所有号码放在这个dom 节点中
    var lotter_type_num_parent = $(".xuanma_btns")

    // 当前彩种类型的名字
    var lotter_type_name_parent = $(".wanfa_btn span")

    // 输入金额
    var money_input = $(".money_input")
    
    // 截止时间
    var currentTimeLeft_parent = $(".lottery_countdown span")
    var currentTimeLeft_hour_dom = currentTimeLeft_parent.eq(0)
    var currentTimeLeft_min_dom  = currentTimeLeft_parent.eq(1)
    var currentTimeLeft_sec_dom  = currentTimeLeft_parent.eq(2)
    var currentTimeLeft = {} // 格式化后的截止时间



    /**
     * 
     * 模板函数
     * 
     */


    // 彩种类型对应的 html 模板
    function lottery_type_template(params) {
        
        return '<div class="swiper-slide ">'+params.name+'</div>'

    }

    // 彩种对应的号码 html 模板
    function lottery_type_num_tempalte(params) {
        
        return  '<li class="border_bottom border_left small">'+
                    '<div class="border_top border_left">'+
                        '<span class="num red">'+params.num+'</span>'+
                        params.rate+
                    '</div>'+
                '</li>'
    }

    // 遍历彩票类型
    function showLotteryTypeList(index) {

        lottery_type_parent.children().eq(index).addClass("on").siblings().removeClass("on")
        
        currentLotteryType = lottery_type_list[index]

        // 把 当前彩种类型 的名字 放到左边号码上面
        lotter_type_name_parent.html(currentLotteryType.name)

        // 获取彩种对应的号码
        var numbers = currentLotteryType.num_list

        // 清空所有之前的号码
        lotter_type_num_parent.empty()
        
        // 遍历彩种对应号码
        numbers.forEach(function (item) {
            
            var tem = lottery_type_num_tempalte(item)

            lotter_type_num_parent.append(tem)

        })
        
    }

    // 显示 投了多少注 和 多少钱
    function showMoneyAndLotteryCount(params) {

        var info_parent = $(".bottom_menu .info").find("span")
        var count_parent = info_parent.eq(0)
        var money_parent = info_parent.eq(1)

        var count = selectedNumber.length;

        count_parent.html(count)

        money_parent.html(count*pay_money)
        
    }

    // 显示截止时间
    function showLeftTime(currentTimeLeftTime) {

        function time(params) {

            var format_left_time =CountDown(--currentTimeLeftTime)

            // 小时
            if(format_left_time.hour!==currentTimeLeft.hour){
                currentTimeLeft_hour_dom.html(checkTime(format_left_time.hour))
            }

            // 剩余 分钟
            if(format_left_time.minutes!==currentTimeLeft.min){
                currentTimeLeft_min_dom.html(checkTime(format_left_time.minutes))
            }

            // 剩余秒数
            if(format_left_time.seconds!==currentTimeLeft.sec){
                currentTimeLeft_sec_dom.html(checkTime(format_left_time.seconds))
            }

            // console.log(currentTimeLeftTime,format_left_time,"22222",format_left_time.sec,currentTimeLeft.sec
            // ,format_left_time.hour,currentTimeLeft.hour,
            // format_left_time.min,currentTimeLeft.min);
            
            
            currentTimeLeft = format_left_time
        }

        time()
        
        var timer = setInterval(function(){

           time()

            if(currentTimeLeftTime==0){
                clearInterval(timer)
            }

        },1000)

        function checkTime(params) {
            params = parseInt(params)
            if(params<10){
                return "0"+params
            }else{
                return params
            }
        }

    }

    /**
     * 
     * 初始化，遍历数据，默认添加第一种彩种类型
     * 
     */

    // 彩种类型假数据
    var lottery_type_list = AjaxData["lotterry_type_list"]

    for (let index = 0; index < lottery_type_list.length; index++) {

        const element = lottery_type_list[index];

        var tem = $(lottery_type_template(element))

        // 把彩种放进 父节点中
        lottery_type_parent.append(tem)
        
    }

    // 添加彩种类型
    showLotteryTypeList(0)


    /**
     * 
     * 事件绑定
     * 
     */

    // 彩种
    $(".swiper-wrapper").on("click",".swiper-slide",function (params) {

        var currentBtn = $(this)
        var btn_index =currentBtn.index()


        /**
         * 1、需要获取对应彩种的号码，然后遍历号码
         * 2、清空已选号码
         * 
         */
        showLotteryTypeList(btn_index)

        clearSelected(selectedNumberIndex)
        clearAllSelected()

        // 更新投了多少注
        showMoneyAndLotteryCount()

    })

    // 选择号码
    lotter_type_num_parent.on("click","li",function (params) {

        var currentBtn = $(this)
        var index = currentBtn.index()
        
        /**
         * 1、保存号码，
         * 2、显示选择的号码
         */
        var num_list=currentLotteryType.num_list
        var selected_num_item= num_list[index]

        if(!currentBtn.hasClass("on")){

            currentBtn.addClass("on")

            // 保存选择号码
            selectedNumber.push(selected_num_item)
            selectedNumberIndex.push(index)
            selectedNumberIds.push(selected_num_item.id)

        }else{

            currentBtn.removeClass("on")

            clearSelected(index)

        }

        if(selectedNumberIndex.length>0){
            money_input.addClass("on")
        }else{
            money_input.removeClass("on")
        }

        // 更新投了多少注
        showMoneyAndLotteryCount()

    })

    // 清空
    $(".btn_clear").on("click",function(){

        if(selectedNumber.length==0){
            return 
        }

        clearSelected(selectedNumberIndex)
        clearAllSelected()

        // 更新投了多少注
        showMoneyAndLotteryCount()

    })

    // 投注
    $(".btn_touzhu").on("click",function(){

        // 判断是否选择号码
        if(selectedNumber.length==0){
            showAlert.show("请选择投注号码")
            return 
        }

        // 判断是否填写金额
        if(pay_money==0){
            showAlert.show("请输入投注金额")
            return 
        }

        alert("开始投注，强哥，这里交给你了")


    })

    // 输入金额
    money_input.on("input",function(e){

        var value = e.target.value

        pay_money = value

        // 更新投了多少注
        showMoneyAndLotteryCount()

        // console.log('e',e);
        

    })

    // 显示截止时间
    showLeftTime(AjaxData["lotterry_time"].openRemainTime)


    // 显示开奖结果
    var lottery_result = $(".lottery_result")
    var lottery_result_time = AjaxData["lotterry_result"]


    /**
     * 
     * 常用函数
     * 
     */

    // 清除选择的号码
    function clearSelected(index) {

        var lotter_type_num_child = lotter_type_num_parent.children()

        if(Array.isArray(index)){

            // 移除样式
            for (let i = 0; i < index.length; i++) {

                const element = index[i];

                lotter_type_num_child.eq(element).removeClass("on")

                resetData(i)
                
            }

        }else{

            lotter_type_num_child.eq(index).removeClass("on")
            
            resetData(index)

        }

        function resetData(index) {
            
            // 移除保存的号码
            var _indexOfNum =selectedNumberIndex.indexOf(index)
            var currentId = selectedNumber[_indexOfNum]

            selectedNumberIndex.splice(_indexOfNum,1)
            selectedNumber.splice(_indexOfNum,1)
    
            for (let index = 0; index < selectedNumber.length; index++) {
                const element = selectedNumber[index];
                
                if(element.id== currentId){
                    selectedNumber.splice(index,1)
                    index--
                }
    
            }
        }

        if(selectedNumber.length==0){
            money_input.removeClass("on")
        }

    }

    // 直接清空所有号码
    function clearAllSelected(params) {
        
        // 清空选择号码
        selectedNumber=[]
        selectedNumberIds=[]
        selectedNumberIndex=[]

        money_input.removeClass("on")
    }

    

    // 显示弹出窗
    var showAlert = (function(params) {

        var showAlertParent = $("#myalert")
        var alert_text = showAlertParent.find(".alert_text")
        var alert_bottom = showAlertParent.find(".alert_bottom span")

        // 关闭弹窗
        alert_bottom.on("click",function(){

            methods.close()

        })

        var methods = {

            show(tip){

                alert_text.html(tip)

                showAlertParent.show()

                return this
            },

            close(){

                showAlertParent.hide()
                return this
            }

        }

        return methods

    })()

    // 请求函数
    var Ajax=(function(params) {

        function ajax(method,params) {

            var _method = method.toUpperCase()
            var data = JSON.stringify(params.data)
            var url = params.url

            var success = params.success
            var error= params.error
            var complete = params.complete

            $.ajax({

                type:_method,

                url:url,

                data:data,

                complete(){

                    complete&&complete()
                },

                success(){
                    
                    success&&success()
                },

                error(){

                    error&&error()
                }

            })

        }

        return{
            post(params){
                ajax("post",params)
            },
            get(){
                ajax("get",params)
            }
        }

    })()

})


// 格式化秒数
function CountDown(num) {
    
    if(num>0){
        minutes = Math.floor(num / 60);
        seconds = Math.floor(num % 60);
        hour = Math.floor(minutes / 60)
        minutes = minutes%60
    }

    return {
        seconds:seconds,
        hour:hour,
        minutes:minutes,
    }

}